/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package net.etrs.formathlon.vue.jsf.form.gest;

import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import net.etrs.formathlon.entity.formation.Domaine;
import net.etrs.formathlon.persistance.formation.DomaineFacade;
import net.etrs.formathlon.vue.jsf.utils.CUDBean;

/**
 * ManageBean JSF pour les pages traitant de l'administration des domaines.
 * @author OPIF
 */
@ManagedBean
@ViewScoped
public class GestDomaineBean extends CUDBean<Domaine, DomaineFacade> {

    @EJB
    private DomaineFacade facade;

    @PostConstruct
    @Override
    protected void init() {
        super.init();
    }

    @Override
    public boolean validerSuppression() {
        if (facade.nbFormationEnCours(getDomaine()) == 0) {
            return super.validerSuppression();
        } else {
            displayAlert("Ce domaine contient des formations en cours. Vous ne pouvez pas le supprimer.");
            return false;
        }
    }

    /**
     * @return the domaine
     */
    public Domaine getDomaine() {
        return getEntite();
    }

    /**
     * @param domaine the domaine to set
     */
    public void setDomaine(Domaine domaine) {
        setEntite(domaine);
    }

    /**
     * @return the listDomaine
     */
    public List<Domaine> getListDomaine() {
        return getListEntite();
    }

    /**
     * @param listDomaine the listDomaine to set
     */
    public void setListDomaine(List<Domaine> listDomaine) {
        setListEntite(listDomaine);
    }

    @Override
    protected DomaineFacade getFacade() {
        return facade;
    }
}
